VM Maker: VMMaker.oscog-eem.2890.mcz

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

VM Maker: VMMaker.oscog-eem.2890.mcz

commits-2
 
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!