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

commits at source.squeak.org commits at source.squeak.org
Thu Jan 12 22:12:54 UTC 2023


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

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

Name: VMMaker.oscog-eem.3294
Author: eem
Time: 12 January 2023, 2:12:38.96543 pm
UUID: d753e8ee-b25c-4d6a-b07b-e2e1965f1506
Ancestors: VMMaker.oscog-eem.3293

And delete the two interlopers from the VMMaker.oscog-eem.3288/3289 fiasco.

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

Item was removed:
- ----- Method: StackInterpreter>>inlineableFunctionCall:in: (in category 'stack bytecodes') -----
- inlineableFunctionCall: aNode in: aCodeGen
- 	"Answer if the given send node is a call to a 'functional' method--a method whose body is a single return statement of some expression and whose actual parameters can all be directly substituted."
- 
- 	aCodeGen maybeBreakForTestToInline: aNode in: self.
- 	aNode isSend ifFalse:
- 		[^false].
- 	((aCodeGen shouldGenerateAsInterpreterProxySend: aNode)
- 	 or: [aCodeGen isStructSend: aNode]) ifTrue:
- 		[^false].
- 	^(aCodeGen methodNamed: aNode selector)
- 		ifNil:
- 			[aNode asTransformedConstantPerform
- 				ifNil: [self isInlineableConditional: aNode in: aCodeGen]
- 				ifNotNil: [:n| self inlineableFunctionCall: n in: aCodeGen]]
- 		ifNotNil:
- 			[:m|
- 			 (m ~~ self
- 			  and: [((m isFunctionalIn: aCodeGen) or: [m mustBeInlined and: [m isComplete]])
- 			  and: [m mayBeInlined
- 			  and: [(aCodeGen mayInline: m selector)
- 			  and: [aNode args allSatisfy: [:a| self isSubstitutableNode: a intoMethod: m in: aCodeGen]]]]])
- 			 or: [m checkForRequiredInlinabilityIn: self]]!!TMethod methodsFor: #inlining stamp: 'WoC 1/12/2023 12:48'!

Item was removed:
- ----- Method: StackInterpreter>>inlineableSend:in: (in category 'stack bytecodes') -----
- inlineableSend: aNode in: aCodeGen
- 	"Answer if the given send node is a call to a method that can be inlined."
- 
- 	| m |
- 	aCodeGen maybeBreakForTestToInline: aNode in: self.
- 	aNode isSend ifFalse: [^false].
- 	m := aCodeGen methodNamed: aNode selector.  "nil if builtin or external function"
- 	
- 	^m ~= nil
- 	 and: [m ~~ self
- 	 and: [m unmodifiedSelector ~= self unmodifiedSelector
- 	 and: [m mayBeInlined
- 	 and: [(m isComplete and: [aCodeGen mayInline: m selector])
- 		or: [m checkForRequiredInlinabilityIn: self]]]]]!



More information about the Vm-dev mailing list