Don't create selector cases for unused binders.
[matthijs/master-project/cλash.git] / NormalizeTypes.hs
index e959bbba42fe5e067278668cfca6ce1c048e3450..56cba91a411666a078e0eed852ffe5c084fea0f9 100644 (file)
@@ -20,11 +20,13 @@ import Outputable ( Outputable, showSDoc, ppr )
 -- Local imports
 import CoreShow
 import Pretty
+import VHDLTypes -- For TypeState
 
 data TransformState = TransformState {
     tsUniqSupply_ :: UniqSupply.UniqSupply
   , tsBindings_ :: Map.Map CoreBndr CoreExpr
   , tsNormalized_ :: VarSet.VarSet -- ^ The binders that have been normalized
+  , tsType_ :: TypeState
 }
 
 $( Data.Accessor.Template.deriveAccessors ''TransformState )
@@ -47,3 +49,9 @@ getGlobalBind bndr = do
 -- Adds a new global binding with the given value
 addGlobalBind :: CoreBndr -> CoreExpr -> TransformSession ()
 addGlobalBind bndr expr = modA tsBindings (Map.insert bndr expr)
+
+-- Returns a list of all global binders
+getGlobalBinders :: TransformSession [CoreBndr]
+getGlobalBinders = do
+  bindings <- getA tsBindings
+  return $ Map.keys bindings