Remove defunct makeVHDLStrings function, messes with haddock
[matthijs/master-project/cλash.git] / cλash / CLasH / Translator.hs
index 79bd8d2e74ab9d7a97ace0d21849810f145add6d..6177dabaca9fc069374da39caf6995e4f8c69ba7 100644 (file)
@@ -34,23 +34,6 @@ import CLasH.VHDL
 import CLasH.VHDL.VHDLTools
 import CLasH.VHDL.Testbench
 
--- | Turn Haskell to VHDL, Usings Strings to indicate the Top Entity, Initial
---   State and Test Inputs.
--- makeVHDLStrings :: 
---   FilePath      -- ^ The GHC Library Dir
---   -> [FilePath] -- ^ The FileNames
---   -> String     -- ^ The TopEntity
---   -> String     -- ^ The InitState
---   -> String     -- ^ The TestInput
---   -> IO ()
--- makeVHDLStrings libdir filenames topentity initstate testinput = do
---   makeVHDL libdir filenames finder
---     where
---       finder = findSpec (hasVarName topentity)
---                         (hasVarName initstate)
---                         (isCLasHAnnotation isInitState)
---                         (hasVarName testinput)
-
 -- | Turn Haskell to VHDL, Using the Annotations for Top Entity, Initial State
 --   and Test Inputs found in the Files. 
 makeVHDLAnnotations :: 
@@ -94,7 +77,7 @@ moduleToVHDL ::
   -> [EntitySpec]             -- ^ The entities to generate
   -> IO [(AST.VHDLId, AST.DesignFile)]
 moduleToVHDL env cores specs = do
-  vhdl <- runTranslatorSession env $ do
+  (vhdl, count) <- runTranslatorSession env $ do
     let all_bindings = concatMap (\x -> CoreSyn.flattenBinds (HscTypes.cm_binds x)) cores
     -- Store the bindings we loaded
     tsBindings %= Map.fromList all_bindings
@@ -102,10 +85,13 @@ moduleToVHDL env cores specs = do
     tsInitStates %= Map.fromList all_initstates
     test_binds <- catMaybesM $ Monad.mapM mkTest specs
     let topbinds = Maybe.catMaybes $ map (\(top, _, _) -> top) specs
-    case topbinds of
+    vhdl <- case topbinds of
       []  -> error "Could not find top entity requested"
       tops -> createDesignFiles (tops ++ test_binds)
+    count <- get tsTransformCounter 
+    return (vhdl, count)
   mapM_ (putStr . render . Ppr.ppr . snd) vhdl
+  putStr $ "Total number of transformations applied: " ++ (show count) ++ "\n"
   return vhdl
   where
     mkTest :: EntitySpec -> TranslatorSession (Maybe CoreSyn.CoreBndr)
@@ -127,7 +113,7 @@ runTranslatorSession env session = do
   -- a unique supply anywhere.
   uniqSupply <- UniqSupply.mkSplitUniqSupply 'z'
   let init_typestate = TypeState builtin_types [] Map.empty Map.empty env
-  let init_state = TranslatorState uniqSupply init_typestate Map.empty Map.empty 0 Map.empty Map.empty Map.empty
+  let init_state = TranslatorState uniqSupply init_typestate Map.empty Map.empty 0 Map.empty Map.empty Map.empty 0
   return $ State.evalState session init_state
 
 -- | Prepares the directory for writing VHDL files. This means creating the