@@ -54,9 +54,11 @@ compile codegen f tm
54 let printItem (cond, deps) = show (S.toList cond) ++ " -> " ++ show (S.toList deps)
54 let printItem (cond, deps) = show (S.toList cond) ++ " -> " ++ show (S.toList deps)
55 iLOG $ "USAGE ANALYSIS:\n" ++ unlines (map printItem . M.toList $ depMap)
55 iLOG $ "USAGE ANALYSIS:\n" ++ unlines (map printItem . M.toList $ depMap)
57+ let (reachableNames', minUse) = minimalUsage depMap
58+ reachableNames = sUN "prim__subBigInt" : sUN "prim__addBigInt" : S.toList reachableNames'
59+ iLOG $ "REACHABLE NAMES: " ++ show reachableNames
57 let fmtDepMap = unlines . map (\(n,is) -> show n ++ " -> " ++ show (IS.toList is)) . M.toList
61 let fmtDepMap = unlines . map (\(n,is) -> show n ++ " -> " ++ show (IS.toList is)) . M.toList
58− let (reachableNames, minUse) = minimalUsage depMap
59− iLOG $ "REACHABLE NAMES: " ++ show (S.toList reachableNames)
60 iLOG $ "MINIMAL USAGE:\n" ++ fmtDepMap minUse
62 iLOG $ "MINIMAL USAGE:\n" ++ fmtDepMap minUse
62 mapM_ (uncurry storeUsage) (M.toList minUse)
64 mapM_ (uncurry storeUsage) (M.toList minUse)
@@ -70,7 +72,7 @@ compile codegen f tm
70 flags <- getFlags codegen
72 flags <- getFlags codegen
71 hdrs <- getHdrs codegen
73 hdrs <- getHdrs codegen
72 impdirs <- allImportDirs
74 impdirs <- allImportDirs
73− defsIn <- mkDecls tm used
75+ defsIn <- mkDecls tm reachableNames
74 let defs = defsIn ++ [(sMN 0 "runMain", maindef)]
76 let defs = defsIn ++ [(sMN 0 "runMain", maindef)]
75 -- iputStrLn $ showSep "\n" (map show defs)
77 -- iputStrLn $ showSep "\n" (map show defs)
76 let (nexttag, tagged) = addTags 65536 (liftAll defs)
78 let (nexttag, tagged) = addTags 65536 (liftAll defs)