[Vm-dev] VM Maker: VMMaker.oscog-eem.798.mcz
commits at source.squeak.org
commits at source.squeak.org
Thu Jul 3 13:09:06 UTC 2014
Eliot Miranda uploaded a new version of VMMaker to project VM Maker:
http://source.squeak.org/VMMaker/VMMaker.oscog-eem.798.mcz
==================== Summary ====================
Name: VMMaker.oscog-eem.798
Author: eem
Time: 3 July 2014, 6:06:32.954 am
UUID: f47e2c22-fea0-4762-b689-8b295a59d8ac
Ancestors: VMMaker.oscog-eem.797
Sort VM methods by class first, selector second, to group
by coarse functionality (e.g. scavenger methods) for the
benefit of the VMProfiler.
Access missOffset via a macro (very minor speedup).
=============== Diff against VMMaker.oscog-eem.797 ===============
Item was changed:
----- Method: CCodeGenerator>>sortMethods: (in category 'utilities') -----
sortMethods: aTMethodCollection
"We need to define this since different Squeak versions answer different results
+ for asSortedCollection and if sort order changes, generated code changes too.
+ When generating VM code, use class name as major sort index as this groups
+ some methods by functionality (e.g. SpurGenerationScavenger) and that makes
+ the VMProfiler more useful."
- for asSortedCollection and if sort order changes, generated code changes too."
^aTMethodCollection asSortedCollection:
+ (self isGeneratingPluginCode
+ ifTrue:
+ [[:a :b| a selector caseSensitiveLessOrEqual: b selector]]
+ ifFalse:
+ [[:a :b|
+ a definingClass = b definingClass
+ ifTrue: [a selector caseSensitiveLessOrEqual: b selector]
+ ifFalse: [a definingClass name caseSensitiveLessOrEqual: b definingClass name]]])!
- [:a :b| a selector caseSensitiveLessOrEqual: b selector]!
Item was changed:
----- Method: Cogit class>>mustBeGlobal: (in category 'translation') -----
mustBeGlobal: var
"Answer if a variable must be global and exported. Used for inst vars that are accessed from VM
support code. include cePositive32BitIntegerTrampoline as a hack to prevent it being inlined (it is
only used outside of Cogit by the object representation). Include CFramePointer CStackPointer as
a hack to get them declared at all."
^#('ceBaseFrameReturnTrampoline' 'ceCaptureCStackPointers' 'ceCheckForInterruptTrampoline'
'ceEnterCogCodePopReceiverReg' 'realCEEnterCogCodePopReceiverReg'
'ceEnterCogCodePopReceiverAndClassRegs' 'realCEEnterCogCodePopReceiverAndClassRegs'
'ceReturnToInterpreterTrampoline' 'ceCannotResumeTrampoline'
'ceTryLockVMOwner' 'ceUnlockVMOwner'
+ 'cmEntryOffset' 'cmNoCheckEntryOffset' 'cmDynSuperEntryOffset' 'missOffset'
- 'cmEntryOffset' 'cmNoCheckEntryOffset' 'cmDynSuperEntryOffset'
'blockNoContextSwitchOffset' 'breakPC'
'CFramePointer' 'CStackPointer' 'cFramePointerInUse' 'ceGetSP'
'traceFlags' 'traceStores' 'debugPrimCallStackOffset')
includes: var!
Item was changed:
----- Method: Cogit>>interpretOffset (in category 'in-line cacheing') -----
interpretOffset
<api>
+ <cmacro: '() missOffset'>
^missOffset!
More information about the Vm-dev
mailing list