[make unboxing understand Let and MkCont, make valueSetToItem more lenient, remove redundant and broken dead code removal from simplifier
John Meacham <john@repetae.net>**20060815083657] hunk ./Grin/DeadCode.hs 130
-                -- g body
+                flip mapM_ (map funcDefName defs) $ \n -> do
+                    n' <- supplyValue usedFuncs n
+                    addRule $ fn' `implies` n'
hunk ./Grin/PointsToAnalysis.hs 417
-valueSetToItem te pt TyNode (VsNodes as n) = NodeValue (Set.mapMonotonic f n) where  -- depends on tag being first value in NodeValue
+valueSetToItem te pt ~TyNode (VsNodes as n) = NodeValue (Set.mapMonotonic f n) where  -- depends on tag being first value in NodeValue
hunk ./Grin/PointsToAnalysis.hs 420
-valueSetToItem te pt (TyPtr _) (VsHeaps ss) = HeapValue (Set.mapMonotonic f ss) where -- depends on int being first value in HeapValue
+valueSetToItem te pt ~(TyPtr _) (VsHeaps ss) = HeapValue (Set.mapMonotonic f ss) where -- depends on int being first value in HeapValue
hunk ./Grin/PointsToAnalysis.hs 426
-valueSetToItem te pt (TyTup xs) (VsNodes as n)
+valueSetToItem te pt ~(TyTup xs) (VsNodes as n)
hunk ./Grin/Simplify.hs 534
-        procF (out,env) ((a,_),_) | False <- a `Set.member` reached = do
-            tick stats (toAtom "Optimize.dead.function")
-            return (out,env)
+        --procF (out,env) ((a,_),_) | False <- a `Set.member` reached = do
+        --    tick stats (toAtom "Optimize.dead.function")
+        --    return (out,env)
hunk ./Grin/Unboxing.hs 110
+    f e@Let { expBody = b } = e { expBody = f b }
+    f e@MkCont { expCont = c , expLam = b } = e { expCont = g c, expLam = g b }
hunk ./Grin/Unboxing.hs 118
+    f e@Let { expDefs = defs, expBody = b } = e { expBody = f b, expDefs = [ createFuncDef True (funcDefName d) (g $ funcDefBody d) | d <- defs ] }
+    f e@MkCont { expCont = c , expLam = b } = e { expCont = g c, expLam = g b }