Add is_local_var predicate.
authorMatthijs Kooijman <m.kooijman@student.utwente.nl>
Mon, 13 Jul 2009 09:52:44 +0000 (11:52 +0200)
committerMatthijs Kooijman <m.kooijman@student.utwente.nl>
Mon, 13 Jul 2009 09:52:44 +0000 (11:52 +0200)
NormalizeTools.hs

index 429a27c05a4d4b3d5ba637af4d272971afe6f92b..1290fd85bd8b19d7aa93a90f59b81c779061c796 100644 (file)
@@ -258,3 +258,9 @@ runTransformSession env uniqSupply session = State.evalState session emptyTransf
 isRepr :: CoreSyn.CoreExpr -> TransformMonad Bool
 isRepr (Type ty) = return False
 isRepr expr = Trans.lift $ MonadState.lift tsType $ VHDLTools.isReprType (CoreUtils.exprType expr)
+
+is_local_var :: CoreSyn.CoreExpr -> TransformSession Bool
+is_local_var (CoreSyn.Var v) = do
+  bndrs <- getGlobalBinders
+  return $ not $ v `elem` bndrs
+is_local_var _ = return False