[squeak-dev] The Trunk: Compiler-eem.399.mcz

commits at source.squeak.org commits at source.squeak.org
Sat Jan 5 00:03:39 UTC 2019


Eliot Miranda uploaded a new version of Compiler to project The Trunk:
http://source.squeak.org/trunk/Compiler-eem.399.mcz

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

Name: Compiler-eem.399
Author: eem
Time: 4 January 2019, 4:03:37.905572 pm
UUID: 7441a2db-94e0-47f0-9b2c-2c8d7b04798e
Ancestors: Compiler-eem.398

repeat loops are optimized loops, and so temps declatred within them need to be nilled omn each iteration.  Hence isOptimizedLoop needs to identify them.

Fix speeling rorre and excess formatting in argumentsInEvaluationOrder

=============== Diff against Compiler-eem.398 ===============

Item was changed:
  ----- Method: MessageNode>>argumentsInEvaluationOrder (in category 'visiting') -----
  argumentsInEvaluationOrder
+ 	"Answer the receiver's arguments in evaluation order.
- 	"Answer the receivers arguments in evaluation order.
  	 If the receiver is a transformed to:do: node this will undo the misordering done by the transformation."
  	^(special > 0
  	   and: [(MacroTransformers at: special) == #transformToDo:
  	   and: [arguments size >= 7]])
+ 		"arguments are in a weird order and may be nil in a transformed to:do: loop.  sigh...
- 		"arguments are in a weid order and may be nil in a transformed to:do: loop.  sigh...
  		 c.f. emitCodeForToDo:encoder:value:"
  		ifTrue:
  			[(arguments at: 7)	"limitInit"
+ 				ifNil: [{	arguments at: 4.	"initStmt"
+ 						arguments at: 5.	"test"
+ 						arguments at: 3.	"block"
+ 						arguments at: 6 	"incStmt" }]
- 				ifNil: [{	(arguments at: 4).	"initStmt"
- 						(arguments at: 5).	"test"
- 						(arguments at: 3).	"block"
- 						(arguments at: 6) 	"incStmt" }]
  				ifNotNil: [:limitInit|
  						{ limitInit.
+ 						arguments at: 4.	"initStmt"
+ 						arguments at: 5.	"test"
+ 						arguments at: 3.	"block"
+ 						arguments at: 6 	"incStmt" }]]
- 						(arguments at: 4).	"initStmt"
- 						(arguments at: 5).	"test"
- 						(arguments at: 3).	"block"
- 						(arguments at: 6) 	"incStmt" }]]
  		ifFalse:
  			[arguments]!

Item was changed:
  ----- Method: MessageNode>>isOptimizedLoop (in category 'testing') -----
  isOptimizedLoop
  	^special > 0
+ 	   and: [#(transformWhile: transformToDo: transformRepeat:) includes: (MacroTransformers at: special)]!
- 	   and: [#(transformWhile: transformToDo:) includes: (MacroTransformers at: special)]!



More information about the Squeak-dev mailing list