From 9256f910f09a88e1fd0ef2f3c5931d9da4740ffe Mon Sep 17 00:00:00 2001 From: Irmen de Jong Date: Sun, 28 Nov 2021 18:50:05 +0100 Subject: [PATCH] rollback binexpr splitting, caused slowdowns --- .../src/prog8/optimizer/BinExprSplitter.kt | 26 +++++++++---------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/codeOptimizers/src/prog8/optimizer/BinExprSplitter.kt b/codeOptimizers/src/prog8/optimizer/BinExprSplitter.kt index 3fdc75770..8d3d21ea9 100644 --- a/codeOptimizers/src/prog8/optimizer/BinExprSplitter.kt +++ b/codeOptimizers/src/prog8/optimizer/BinExprSplitter.kt @@ -58,19 +58,19 @@ X = BinExpr X = LeftExpr if(rightBx!=null && (!rightBx.left.isSimple || !rightBx.right.isSimple)) return noModifications - // TODO below attempts to remove stack-based evaluated expressions, but sometimes the resulting code is BIGGER. - val dt = assignment.target.inferType(program) - if(!dt.isInteger) - return noModifications - val tempVar = IdentifierReference(getTempVarName(dt), binExpr.right.position) - val assignTempVar = Assignment( - AssignTarget(tempVar, null, null, binExpr.right.position), - binExpr.right, binExpr.right.position - ) - return listOf( - IAstModification.InsertBefore(assignment, assignTempVar, assignment.parent as IStatementContainer), - IAstModification.ReplaceNode(binExpr.right, tempVar.copy(), binExpr) - ) + // TODO below attempts to remove stack-based evaluated expressions, but often the resulting code is BIGGER, and SLOWER. +// val dt = assignment.target.inferType(program) +// if(!dt.isInteger) +// return noModifications +// val tempVar = IdentifierReference(getTempVarName(dt), binExpr.right.position) +// val assignTempVar = Assignment( +// AssignTarget(tempVar, null, null, binExpr.right.position), +// binExpr.right, binExpr.right.position +// ) +// return listOf( +// IAstModification.InsertBefore(assignment, assignTempVar, assignment.parent as IStatementContainer), +// IAstModification.ReplaceNode(binExpr.right, tempVar.copy(), binExpr) +// ) } if(binExpr.right.isSimple) {