From 3d93e9c743beb2402f37eee8210ec9fcaaa43e18 Mon Sep 17 00:00:00 2001 From: Matthijs Kooijman Date: Tue, 6 Apr 2010 16:45:17 +0200 Subject: [PATCH] Update comment for return value simplification. --- "c\316\273ash/CLasH/Normalize.hs" | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git "a/c\316\273ash/CLasH/Normalize.hs" "b/c\316\273ash/CLasH/Normalize.hs" index 75ab738..36990df 100644 --- "a/c\316\273ash/CLasH/Normalize.hs" +++ "b/c\316\273ash/CLasH/Normalize.hs" @@ -121,11 +121,13 @@ castsimpl c expr = return expr castsimpltop = everywhere ("castsimpl", castsimpl) -------------------------------- --- Ensure that a function that just returns another function (or rather, --- another top-level binder) is still properly normalized. This is a temporary --- solution, we should probably integrate this pass with lambdasimpl and --- letsimpl instead. +-- Return value simplification -------------------------------- +-- Ensure the return value of a function follows proper normal form. eta +-- expansion ensures the body starts with lambda abstractions, this +-- transformation ensures that the lambda abstractions always contain a +-- recursive let and that, when the return value is representable, the +-- let contains a local variable reference in its body. retvalsimpl c expr@(Let (Rec binds) body) | all (== LambdaBody) c = do -- Don't extract values that are already a local variable, to prevent -- loops with ourselves. -- 2.30.2