[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