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

commits at source.squeak.org commits at source.squeak.org
Thu Nov 19 23:27:41 UTC 2020


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

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

Name: VMMaker.oscog-eem.2890
Author: eem
Time: 19 November 2020, 3:27:30.098527 pm
UUID: efbda991-7783-410b-a286-305ddf6fde8a
Ancestors: VMMaker.oscog-eem.2889

More effort is required to delete the unnecessary read before Spur is:instanceOf:compactClassIndex:.

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

Item was removed:
- ----- Method: TParseNode>>collect: (in category 'enumerating') -----
- collect: aBlock
- 	| nodes |
- 	self halt. "This is a misnomer; should be deleted"
- 	nodes := OrderedCollection new.
- 	self nodesDo: [:n| (aBlock value: n) ifTrue: [nodes add: n]].
- 	^nodes!

Item was changed:
+ ----- Method: TParseNode>>deny: (in category 'testing') -----
- ----- Method: TParseNode>>deny: (in category 'as yet unclassified') -----
  deny: aBooleanOrBlock
  	aBooleanOrBlock value ifTrue: [AssertionFailure signal: 'Assertion failed']!

Item was changed:
  ----- Method: TSendNode>>hasSideEffect (in category 'testing') -----
  hasSideEffect
+ 	"Answer if the parse tree rooted at this node has a side-effect or not.
+ 	 We aassume most sends do, but filter-out arithmetic and certain reads."
+ 	(#(	baseHeaderSize bytesPerOop bytesPerWord logBytesPerOop
+ 		numSmallIntegerBits numSmallIntegerTagBits numTagBits
+ 		shiftForWord tagMask wordSize) includes: selector) ifTrue:
+ 		[^false].
+ 	(#(#+ #- #* #/ #// #\\ #= #== #~= #~~ << >>
+ 		"These two important for Spur is:instanceOf:compactClassIndex: et al"
+ 		longAt: fetchPointer:ofObject:) includes: selector) ifFalse:
+ 		[^true].
+ 	^receiver hasSideEffect or: [arguments first hasSideEffect]!
- 	"Answer if the parse tree rooted at this node has a side-effect or not."
- 	selector == #longAt: ifTrue: "Important for inlining Spur's isClassOfNonImm:equalTo:compactClassIndex:"
- 		[^arguments first hasSideEffect "a.k.a. arguments anySatisfy: [:node| node hasSideEffect]"].
- 	^(#(#+ #- #* #/ #// #\\ #= #== #~= #~~ << >>) includes: selector) not!



More information about the Vm-dev mailing list