[ENH][VM] Improved code generation (hopefully ;)

Andreas Raab andreas.raab at gmx.de
Tue Jul 8 00:07:27 UTC 2003


> > PS. What kind of variable name is  
> > "globalStructureBuildMethodHasFoo"??? ;-)
> 
> Cryptic....
>
> The global structure build method has to provide a foo register  
> reference, this is only done based on referencing the fum structure
> more that once in a method build. Originally it was only done
> if we had one reference to foo in the method build, hence  
> globalStructureBuildMethodHasFoo.

So "foo" refers to "fum", eh? So much for intention-revealing code ;-)))

> Anyway I've build a 3.6.x VM based on these change sets and find that
> localReturnContext localReturnValue still have no declaration in
> interpret()

Do you use any changes which are not within VMMaker? It almost sounds as if
you might be using some changes which undo some of those that I did. The CS
certainly contains the changes, e.g.,

CCodeGenerator>>doInlining: inlineFlag
	"..."
	self inlineDispatchesInMethodNamed: #interpret
		localizingVars: #(currentBytecode localIP localSP
localHomeContext localReturnContext localReturnValue).

Check the senders of #inlineDispatchesInMethodNamed:localizingVars: and see
if that list includes localReturnContext and localReturnValue. If not, then
something's wrong.

Cheers,
  - Andreas



More information about the Squeak-dev mailing list