From e8faec0932b0d5be23fafcd9efb0a9aa5302242b Mon Sep 17 00:00:00 2001 From: Irmen de Jong Date: Tue, 10 Nov 2020 21:17:33 +0100 Subject: [PATCH] re-introduced more aggressive binexpr splitting optimization --- compiler/src/prog8/optimizer/BinExprSplitter.kt | 3 +-- examples/mandelbrot.p8 | 2 -- 2 files changed, 1 insertion(+), 4 deletions(-) diff --git a/compiler/src/prog8/optimizer/BinExprSplitter.kt b/compiler/src/prog8/optimizer/BinExprSplitter.kt index eef2cedcc..bbc733a75 100644 --- a/compiler/src/prog8/optimizer/BinExprSplitter.kt +++ b/compiler/src/prog8/optimizer/BinExprSplitter.kt @@ -53,12 +53,11 @@ X = BinExpr X = LeftExpr */ - // TODO can be generelized a bit by allowing LEFT EXPR to be more complex if(binExpr.operator in augmentAssignmentOperators && isSimpleTarget(assignment.target, program.namespace)) { if(assignment.target isSameAs binExpr.left || assignment.target isSameAs binExpr.right) return noModifications - if(isSimpleExpression(binExpr.left) && isSimpleExpression(binExpr.right) && !assignment.isAugmentable) { + if(isSimpleExpression(binExpr.right) && !assignment.isAugmentable) { val firstAssign = Assignment(assignment.target, binExpr.left, binExpr.left.position) val targetExpr = assignment.target.toExpression() val augExpr = BinaryExpression(targetExpr, binExpr.operator, binExpr.right, binExpr.right.position) diff --git a/examples/mandelbrot.p8 b/examples/mandelbrot.p8 index 3a57abb01..50fd45f95 100644 --- a/examples/mandelbrot.p8 +++ b/examples/mandelbrot.p8 @@ -4,8 +4,6 @@ ; Note: this program is compatible with C64 and CX16. -; TODO this is 5 seconds slower than the previous compiled version. Caused by BinExprSplitter change? - main { const uword width = 30 const uword height = 20