[clean up E/LetFloat.hs
John Meacham <john@repetae.net>**20060207035121] hunk ./E/LetFloat.hs 5
-    doCoalesce,
-    doLetRec,
-    varElim,
-    propRec,
hunk ./E/LetFloat.hs 22
+import Options
hunk ./E/LetFloat.hs 30
-doLetRec stats ds _ | hasRepeatUnder fst ds = error "doLetRec: repeated variables!"
-doLetRec stats ds e = do
-    return $ substLet ds e
-    {-
-    let fakeDs = (TVr (-1) undefined,e)
-    let ds' = reachable (newGraph (fakeDs:ds) (tvrNum . fst) (freeVars . snd)) [-1]
-    let ds'' = [ d | d@(t,_) <- ds', tvrNum t /= -1 ]
-    liftIO $ ticks stats (length ds - length ds'') (toAtom "E.LetFloat.var-elimination")
-    return $ ELetRec ds'' e
-    -}
+doLetRec stats ds _ | flint && hasRepeatUnder fst ds = error "doLetRec: repeated variables!"
+doLetRec stats ds e = return $ substLet ds e
hunk ./E/LetFloat.hs 36
-propRec stats n = do
-    ticks stats n (toAtom "E.Simplify.copy-propagate")
hunk ./E/LetFloat.hs 55
-        --lift $ putErrLn $ "Atomizing: " ++ render (ePretty e)
hunk ./E/LetFloat.hs 200
-    {-
-    f n (x,xs) = do
-        (xs',dss) <- fmap unzip (mapM at xs)
-        case x of
-            ECase (ELetRec ds' (ELetRec ds'' x')) as -> do
-                lift $ tick stats (toAtom "LetFloat.coalesce.fromLet")
-                fromLet2 (concat $ ds'':ds':dss) (foldl EAp x' xs')
-            ECase (ELetRec ds' x') as -> do
-                lift $ tick stats (toAtom "LetFloat.coalesce.fromCase")
-                fromLet2 (concat $ ds':dss) (foldl EAp (ECase x' as) xs')
-            ELetRec ds' x' | not (null xs) -> do
-                lift $ tick stats (toAtom "LetFloat.coalesce.fromAp")
-                fromLet2 (concat $ ds':dss) (foldl EAp x' xs')
-            x -> fromLet2 (concat dss) (foldl EAp x xs')
-    at (ELetRec ds e) = do
-        lift $ tick stats (toAtom "LetFloat.coalesce.fromArg")
-        return (e,ds)
-    at e = return (e,[])
-    at' (t,(ELetRec ds e)) = do
-        lift $ tick stats (toAtom "LetFloat.coalesce.fromLet2")
-        return ((t,e),ds)
-    at' e = return (e,[])
-    fromLet2 ds e = do
-        (ds',dss) <- fmap unzip (mapM at' ds)
-        doLetRec stats (concat $ ds':dss) e
-
-    -}
-
-letFloat :: Stats -> String -> E -> IO (E,[(TVr,E)])
-letFloat stats s e = do
-    return (e,[])
hunk ./E/LetFloat.hs 201
---notAtomic e | Just _ <- fullyConst e = False
---notAtomic e | sortTypeLike e = False
---notAtomic e = not $ isAtomic e
hunk ./E/LetFloat.hs 202
---notAtomic (ELetRec _ e) = notAtomic e
-----notAtomic x | sortTypeLike x  = False
---notAtomic ECase {} = True
---notAtomic EAp {} = True
---notAtomic ELam {} = True
---notAtomic EPrim {} = True
---notAtomic e | Just _ <- fullyConst e = False
---notAtomic (ELit (LitCons n (_:_) _)) = True
---notAtomic EPi {} = True
---notAtomic _ = False