[Vm-dev] VM Maker: VMMaker-dtl.272.mcz

commits at source.squeak.org commits at source.squeak.org
Wed May 23 03:31:14 UTC 2012


David T. Lewis uploaded a new version of VMMaker to project VM Maker:
http://source.squeak.org/VMMaker/VMMaker-dtl.272.mcz

==================== Summary ====================

Name: VMMaker-dtl.272
Author: dtl
Time: 22 May 2012, 11:29:58.621 pm
UUID: 5eeb4798-b79f-4599-aa4e-eaa57e32b4a2
Ancestors: VMMaker-dtl.271

VMMaker 4.9.2

Fix slang browsing for inlined methods in ObjectMemory. The interpreter now collaborates with an object memory, so arrange for Interpreter methods that are inlined into ObjectMemory methods to be properly inlined for #asInlinedCString: code generation.

=============== Diff against VMMaker-dtl.271 ===============

Item was added:
+ ----- Method: Interpreter class>>initializeCodeGenerator: (in category 'translation') -----
+ initializeCodeGenerator: cg
+ 	"Load a code generator with classes in a manner suitable for generating
+ 	code for this class."
+ 
+ 	super initializeCodeGenerator: cg.
+ 	^ self initializeClassicObjectMemoryInCodeGenerator: cg
+ 	"^ self initializeNewObjectMemoryInCodeGenerator: cg"
+ !

Item was removed:
- ----- Method: InterpreterPrimitives class>>initializeCodeGenerator: (in category 'translation') -----
- initializeCodeGenerator: cg
- 	"Load a code generator with classes in a manner suitable for generating
- 	code for this class."
- 
- 	super initializeCodeGenerator: cg.
- 	^ self initializeClassicObjectMemoryInCodeGenerator: cg
- 	"^ self initializeNewObjectMemoryInCodeGenerator: cg"
- !

Item was added:
+ ----- Method: Object>>buildCodeGeneratorInlined: (in category '*VMMaker-translation support') -----
+ buildCodeGeneratorInlined: doInlining
+ 	"Build a CCodeGenerator for this class. By default, generate only the
+ 	the methods for aClass. Classes that are normally translated along with
+ 	other collaborating classes, such as an object memory and its interpreter,
+ 	may include the collaborating classes when doInlining is true, allowing methods
+ 	in those classes to be included in the inlining process."
+ 
+ 	 ^self buildCodeGenerator
+ !

Item was added:
+ ----- Method: ObjectMemory class>>buildCodeGeneratorInlined: (in category 'translation') -----
+ buildCodeGeneratorInlined: doInlining
+ 	"Build a CCodeGenerator for this class. By default, generate only the
+ 	the methods for aClass. Classes that are normally translated along with
+ 	other collaborating classes, such as an object memory and its interpreter,
+ 	may include the collaborating classes when doInlining is true, allowing methods
+ 	in those classes to be included in the inlining process."
+ 
+ 	 | cg |
+ 	cg := VMMaker new createCodeGenerator.
+ 	cg declareMethodsStatic: false.
+ 	cg permitMethodPruning: true.
+ 	doInlining
+ 		ifTrue: ["Include methods from associated classes so that inlining for each
+ 				method is performed as in normal interp.c generation"
+ 				^self interpreterClass initializeCodeGenerator: cg]
+ 		ifFalse: [^self initializeCodeGenerator: cg]
+ !

Item was added:
+ ----- Method: ObjectMemory class>>interpreterClass (in category 'translation') -----
+ interpreterClass
+ 	"Answer the interpreter class that is commonly used in collaboration with
+ 	this type of object memory. When generating inlined methods, some methods
+ 	from the interpreter class may be inlined into methods in the object memory."
+ 
+ 	^Interpreter
+ !

Item was added:
+ ----- Method: StackInterpreter class>>initializeCodeGenerator: (in category 'translation') -----
+ initializeCodeGenerator: cg
+ 	"Load a code generator with classes in a manner suitable for generating
+ 	code for this class."
+ 
+ 	super initializeCodeGenerator: cg.
+ 	^ self initializeNewObjectMemoryInCodeGenerator: cg
+ !

Item was changed:
  ----- Method: VMMaker class>>versionString (in category 'version testing') -----
  versionString
  
  	"VMMaker versionString"
  
+ 	^'4.9.2'!
- 	^'4.9.1'!



More information about the Vm-dev mailing list