From 60174903a7e142bf05586c24498b7e064a7118ff Mon Sep 17 00:00:00 2001 From: Matthijs Kooijman Date: Mon, 17 Aug 2009 11:36:06 +0200 Subject: [PATCH] Disable letmerge. When faced with nested recursive and non-recursive lets, letmerge becomes complicated very quickly, so we might need to rewrite it if it's really needed. For now, just disable it to prevent it from breaking things. --- "c\316\273ash/CLasH/Normalize.hs" | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git "a/c\316\273ash/CLasH/Normalize.hs" "b/c\316\273ash/CLasH/Normalize.hs" index b16eb7a..192ed55 100644 --- "a/c\316\273ash/CLasH/Normalize.hs" +++ "b/c\316\273ash/CLasH/Normalize.hs" @@ -267,6 +267,7 @@ letremoveunused expr@(Let (Rec binds) res) = do letremoveunused expr = return expr letremoveunusedtop = everywhere ("letremoveunused", letremoveunused) +{- -------------------------------- -- Identical let binding merging -------------------------------- @@ -297,7 +298,8 @@ letmerge expr@(Let _ _) = do -- Leave all other expressions unchanged letmerge expr = return expr letmergetop = everywhere ("letmerge", letmerge) - +-} + -------------------------------- -- Function inlining -------------------------------- @@ -614,7 +616,7 @@ funextracttop = everywhere ("funextract", funextract) -- What transforms to run? -transforms = [argproptop, funextracttop, etatop, betatop, castproptop, letremovesimpletop, letderectop, letremovetop, letsimpltop, letflattop, scrutsimpltop, casesimpltop, caseremovetop, inlinenonreptop, appsimpltop, letmergetop, letremoveunusedtop, castsimpltop, lambdasimpltop] +transforms = [argproptop, funextracttop, etatop, betatop, castproptop, letremovesimpletop, letderectop, letremovetop, letsimpltop, letflattop, scrutsimpltop, casesimpltop, caseremovetop, inlinenonreptop, appsimpltop, letremoveunusedtop, castsimpltop, lambdasimpltop] -- | Returns the normalized version of the given function. getNormalized :: -- 2.30.2