[Vm-dev] VM Maker: VMMaker.oscog-eem.2825.mcz

commits at source.squeak.org commits at source.squeak.org
Sat Sep 26 22:07:10 UTC 2020


Eliot Miranda uploaded a new version of VMMaker to project VM Maker:
http://source.squeak.org/VMMaker/VMMaker.oscog-eem.2825.mcz

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

Name: VMMaker.oscog-eem.2825
Author: eem
Time: 26 September 2020, 3:07:01.119921 pm
UUID: f2473bb9-cc41-42fc-879b-7b06e8de7de7
Ancestors: VMMaker.oscog-eem.2824

Fripperies.  Add comments to those AbstractInstruction classes in-use not previously commented.  Make the multi-window browser opening utilities more helpful/complete/accurate.

=============== Diff against VMMaker.oscog-eem.2824 ===============

Item was changed:
  CogARMCompiler subclass: #CogInLineLiteralsARMCompiler
  	instanceVariableNames: ''
  	classVariableNames: ''
  	poolDictionaries: ''
  	category: 'VMMaker-JIT'!
+ 
+ !CogInLineLiteralsARMCompiler commentStamp: 'eem 9/26/2020 15:02' prior: 0!
+ A CogInLineLiteralsARMCompiler is the concrete subclass of CogARMCompiler that stores literals in-line in machine-code. This code generator is not used.
+ 
+ Instance Variables!

Item was changed:
  CogX64Compiler subclass: #CogInLineLiteralsX64Compiler
  	instanceVariableNames: ''
  	classVariableNames: ''
  	poolDictionaries: ''
  	category: 'VMMaker-JIT'!
+ 
+ !CogInLineLiteralsX64Compiler commentStamp: 'eem 9/26/2020 15:02' prior: 0!
+ A CogInLineLiteralsX64Compiler is the concrete subclass of CogX64Compiler that stores literals in-line in machine-code. This is the production code generator for x64/x86-64.
+ 
+ Instance Variables!

Item was changed:
  CogARMCompiler subclass: #CogOutOfLineLiteralsARMCompiler
  	instanceVariableNames: ''
  	classVariableNames: ''
  	poolDictionaries: ''
  	category: 'VMMaker-JIT'!
+ 
+ !CogOutOfLineLiteralsARMCompiler commentStamp: 'eem 9/26/2020 15:03' prior: 0!
+ CogOutOfLineLiteralsARMCompiler is the concrete subclass of CogARMCompiler that stores literals out-of-line, accessed via pc-relative addressing. This is the production code generator for 32-bit ARM.
+ 
+ Instance Variables
+ !

Item was changed:
  CogX64Compiler subclass: #CogOutOfLineLiteralsX64Compiler
  	instanceVariableNames: ''
  	classVariableNames: ''
  	poolDictionaries: ''
  	category: 'VMMaker-JIT'!
+ 
+ !CogOutOfLineLiteralsX64Compiler commentStamp: 'eem 9/26/2020 14:58' prior: 0!
+ A CogOutOfLineLiteralsX64Compiler is the concrete subclass of CogX64Compiler that stores literals out-of-line, accessed via pc-relative addressing.  This code generator is not used.
+ 
+ Instance Variables!

Item was changed:
  ----- Method: VMClass class>>initialize (in category 'initialization') -----
  initialize
  	InitializationOptions ifNil: [InitializationOptions := Dictionary new].
  	ExpensiveAsserts := false.
  	(Smalltalk classNamed: #Utilities) ifNotNil:
  		[:utilitiesClass|
  		 (utilitiesClass classPool at: #CommonRequestStrings ifAbsent: []) ifNotNil:
  			[:commonRequestStringHolder|
  			(commonRequestStringHolder contents asString includesSubstring: 'VMClass open') ifFalse:
+ 				[Utilities appendToCommonRequests: '-\VMMaker generateConfiguration\VMMaker generateAllConfigurationsUnderVersionControl\VMMaker generateAllSpurConfigurations\VMClass openCogSpurMultiWindowBrowser\VMClass openCogV3MultiWindowBrowser\VMClass openObjectMemoriesInterpretersBrowser\VMClass openSpurMultiWindowBrowser\VMClass openCogitMultiWindowBrowser' withCRs]]]!
- 				[Utilities appendToCommonRequests: '-\VMMaker generateConfiguration\VMMaker generateAllConfigurationsUnderVersionControl\VMMaker generateAllSpurConfigurations\VMClass openCogMultiWindowBrowser\VMClass openObjectMemoriesInterpretersBrowser\VMClass openSpurMultiWindowBrowser\VMClass openCogSpurMultiWindowBrowser\VMClass openCogitMultiWindowBrowser' withCRs]]]!

Item was removed:
- ----- Method: VMClass class>>openCogMultiWindowBrowser (in category 'utilities') -----
- openCogMultiWindowBrowser
- 	"Answer a new multi-window browser on the ObjectMemory classes, the Cog Interpreter classes, and the main JIT classes"
- 	| b |
- 	b := Browser open.
- 	#(	ObjectMemory NewObjectMemory NewCoObjectMemory
- 		InterpreterPrimitives StackInterpreter StackInterpreterPrimitives CoInterpreter CoInterpreterPrimitives CoInterpreterMT
- 		Cogit SimpleStackBasedCogit StackToRegisterMappingCogit
- 		VMStructType VMMaker CCodeGenerator TMethod)
- 		do: [:className|
- 			(Smalltalk classNamed: className) ifNotNil:
- 				[:class| b selectCategoryForClass: class; selectClass: class]]
- 		separatedBy:
- 			[b multiWindowState addNewWindow].
- 	b multiWindowState selectWindowIndex: 1!

Item was changed:
  ----- Method: VMClass class>>openCogSpurMultiWindowBrowser (in category 'utilities') -----
  openCogSpurMultiWindowBrowser
+ 	"Answer a new multi-window browser on the SpurMemoryManager classes, the Cog Interpreter classes, and the main JIT classes"
- 	"Answer a new multi-window browser on the ObjectMemory classes, the Cog Interpreter classes, and the main JIT classes"
  	| b |
  	b := Browser open.
  	#(	SpurMemoryManager Spur32BitMemoryManager Spur32BitCoMemoryManager
  		 Spur64BitMemoryManager Spur64BitCoMemoryManager SpurGenerationScavenger
  		InterpreterPrimitives StackInterpreter StackInterpreterPrimitives CoInterpreter CoInterpreterPrimitives CoInterpreterMT
+ 		Cogit SimpleStackBasedCogit StackToRegisterMappingCogit RegisterAllocatingCogit
- 		Cogit SimpleStackBasedCogit StackToRegisterMappingCogit
  		CogObjectRepresentation CogObjectRepresentationForSpur
  		CogObjectRepresentationFor32BitSpur CogObjectRepresentationFor64BitSpur
+ 		CogRTLOpcodes CogAbstractRegisters CogAbstractInstruction),
+ 	(self sortedAbstractInstructionClasses collect: [:class| class name]),
+ 	#(VMStructType VMMaker CCodeGenerator TMethod)
+ 		do: [:classOrClassName|
+ 			(Smalltalk classNamed: classOrClassName) ifNotNil:
- 		VMStructType VMMaker CCodeGenerator TMethod)
- 		do: [:className|
- 			(Smalltalk classNamed: className) ifNotNil:
  				[:class| b selectCategoryForClass: class; selectClass: class]]
  		separatedBy:
  			[b multiWindowState addNewWindow].
  	b multiWindowState selectWindowIndex: 1!

Item was added:
+ ----- Method: VMClass class>>openCogV3MultiWindowBrowser (in category 'utilities') -----
+ openCogV3MultiWindowBrowser
+ 	"Answer a new multi-window browser on the ObjectMemory classes, the Cog Interpreter classes, and the main JIT classes"
+ 	| b |
+ 	b := Browser open.
+ 	#(	ObjectMemory NewObjectMemory NewCoObjectMemory
+ 		InterpreterPrimitives StackInterpreter StackInterpreterPrimitives CoInterpreter CoInterpreterPrimitives CoInterpreterMT
+ 		Cogit SimpleStackBasedCogit StackToRegisterMappingCogit
+ 		VMStructType VMMaker CCodeGenerator TMethod)
+ 		do: [:className|
+ 			(Smalltalk classNamed: className) ifNotNil:
+ 				[:class| b selectCategoryForClass: class; selectClass: class]]
+ 		separatedBy:
+ 			[b multiWindowState addNewWindow].
+ 	b multiWindowState selectWindowIndex: 1!

Item was changed:
  ----- Method: VMClass class>>openCogitMultiWindowBrowser (in category 'utilities') -----
  openCogitMultiWindowBrowser
  	"Answer a new multi-window browser on the ObjectMemory classes, the Cog Interpreter classes, and the main JIT classes"
  	"self openCogitMultiWindowBrowser"
  	| b |
  	b := Browser open.
  	{CogRTLOpcodes. CogAbstractRegisters },
+ 	self sortedAbstractInstructionClasses,
- 	(CogAbstractInstruction withAllSubclasses reject: [:c| c name endsWith: 'Tests']),
  	Cogit withAllSubclasses,
  	{CogMethodZone },
  	CogObjectRepresentation withAllSubclasses,
- 	(CogAbstractInstruction withAllSubclasses reject: [:c| c name endsWith: 'Tests']),
  	CogBytecodeFixup withAllSubclasses,
  	CogSimStackEntry withAllSubclasses,
  	{VMStructType. VMMaker. CCodeGenerator. TMethod}
  		do: [:class|
  			b selectCategoryForClass: class; selectClass: class]
  		separatedBy:
  			[b multiWindowState addNewWindow].
  	b multiWindowState selectWindowIndex: 1!

Item was added:
+ ----- Method: VMClass class>>sortedAbstractInstructionClasses (in category 'utilities') -----
+ sortedAbstractInstructionClasses
+ 	"Answer the in-use processor classes in a rational order."
+ 	^((CogAbstractInstruction subclasses sort: [:ca :cb| ca ISA <= cb ISA])
+ 		collect: [:class| class = class defaultCompilerClass ifTrue: [{class}] ifFalse: [{class. class defaultCompilerClass}]]) fold: [:a :b| a, b]!



More information about the Vm-dev mailing list