VM Maker: VMMaker.oscog-eem.2397.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.2397.mcz

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

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

Name: VMMaker.oscog-eem.2397
Author: eem
Time: 30 May 2018, 7:49:46.882396 pm
UUID: b696a3c2-2443-4c71-94ef-04a4a9a8c426
Ancestors: VMMaker.oscog-eem.2396

Actually fix Slang not emitting variable declarations for 'extern ...' declarations.

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

Item was changed:
  ----- Method: TMethod>>removeUnusedTempsIn: (in category 'utilities') -----
  removeUnusedTempsIn: aCodeGen
  "Remove all of the unused temps in this method. Answer a set of the references."
  "After inlining some variable references are now obsolete, we could fix them there
  but the code seems a bit complicated, the other choice to to rebuild the locals
  before extruding. This is done here"
  | usedVariables |
  usedVariables := self allReferencedVariablesUsing: aCodeGen.
  "reset the locals to be only those still referred to"
  locals do:
  [:local|
+ (usedVariables includes: local) ifFalse:
+ [(((declarations at: local ifAbsent: ['']) includesSubstring: 'static')
+  or: [(declarations at: local ifAbsent: ['']) includesSubstring: 'extern'])
+ ifFalse:
+ [locals remove: local.
+ declarations removeKey: local ifAbsent: []]
+ ifTrue:
+ [usedVariables add: local "In case this is a function declaration, e.g. amInVMThread in ownVM:"]]].
- ((usedVariables includes: local) not
-  and: [((declarations at: local ifAbsent: ['']) includesSubstring: 'static') not
-  and: [((declarations at: local ifAbsent: ['']) includesSubstring: 'extern') not]]) ifTrue:
- [locals remove: local.
- declarations removeKey: local ifAbsent: []]].
  ^usedVariables!