Add isUserDefined predicate.
authorMatthijs Kooijman <m.kooijman@student.utwente.nl>
Wed, 19 Aug 2009 08:53:53 +0000 (10:53 +0200)
committerMatthijs Kooijman <m.kooijman@student.utwente.nl>
Wed, 19 Aug 2009 08:53:53 +0000 (10:53 +0200)
This predicate makes a guess as to which binders are user defined.

cλash/CLasH/Normalize/NormalizeTools.hs

index 116c84742f45f7953b7fcea588820c8d7e305da3..e4d22f32a42134cf66be625c0906ef57985ad971 100644 (file)
@@ -20,6 +20,8 @@ import Data.Accessor.MonadState as MonadState
 
 -- GHC API
 import CoreSyn
+import qualified Name
+import qualified Id
 import qualified CoreSubst
 import qualified CoreUtils
 import Outputable ( showSDoc, ppr, nest )
@@ -186,3 +188,11 @@ is_local_var (CoreSyn.Var v) = do
   bndrs <- getGlobalBinders
   return $ not $ v `elem` bndrs
 is_local_var _ = return False
+
+-- Is the given binder defined by the user?
+isUserDefined :: CoreSyn.CoreBndr -> Bool
+-- System names are certain to not be user defined
+isUserDefined bndr | Name.isSystemName (Id.idName bndr) = False
+-- Assume everything else is user defined
+isUserDefined bdnr = True
+