From b3600a04c2389de2205479d6fbd17397589bc0b8 Mon Sep 17 00:00:00 2001 From: Andreas Rumpf Date: Mon, 28 Dec 2015 23:39:37 +0100 Subject: [PATCH] compute LL before the other transformations as that should produce more efficient code for closure iterators --- compiler/transf.nim | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/compiler/transf.nim b/compiler/transf.nim index 98aafaaff5..c35a3251a3 100644 --- a/compiler/transf.nim +++ b/compiler/transf.nim @@ -883,12 +883,12 @@ proc transformBody*(module: PSym, n: PNode, prc: PSym): PNode = if nfTransf in n.flags or prc.kind in {skTemplate}: result = n else: + result = liftLambdas(prc, n) + #result = n var c = openTransf(module, "") - result = processTransf(c, n, prc) + result = processTransf(c, result, prc) liftDefer(c, result) - result = liftLambdas(prc, result) - #if prc.kind == skClosureIterator: - # result = lambdalifting.liftIterator(prc, result) + #result = liftLambdas(prc, result) incl(result.flags, nfTransf) when useEffectSystem: trackProc(prc, result) #if prc.name.s == "testbody": @@ -901,7 +901,7 @@ proc transformStmt*(module: PSym, n: PNode): PNode = var c = openTransf(module, "") result = processTransf(c, n, module) liftDefer(c, result) - result = liftLambdasForTopLevel(module, result) + #result = liftLambdasForTopLevel(module, result) incl(result.flags, nfTransf) when useEffectSystem: trackTopLevelStmt(module, result)