projects
/
matthijs
/
master-project
/
cλash.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Caching converted tfp integers to speedup translation
[matthijs/master-project/cλash.git]
/
CoreTools.hs
diff --git
a/CoreTools.hs
b/CoreTools.hs
index 33a4a62a3ab0368e895ba5b0d39cb2776bf4a5b3..3569d53b06e98b1c155cee605cd96e626067d69f 100644
(file)
--- a/
CoreTools.hs
+++ b/
CoreTools.hs
@@
-93,12
+93,14
@@
ranged_word_bound ty =
-- | Get the length of a FSVec type
tfvec_len :: Type.Type -> Int
-- | Get the length of a FSVec type
tfvec_len :: Type.Type -> Int
-tfvec_len ty =
- eval_tfp_int len
+tfvec_len ty = eval_tfp_int (tfvec_len_ty ty)
+
+tfvec_len_ty :: Type.Type -> Type.Type
+tfvec_len_ty ty = len
where
args = case Type.splitTyConApp_maybe ty of
Just (tycon, args) -> args
where
args = case Type.splitTyConApp_maybe ty of
Just (tycon, args) -> args
- Nothing -> error $ "
CoreTools.tfvec_len
Not a vector type: " ++ (pprString ty)
+ Nothing -> error $ "
\nCoreTools.tfvec_len_ty:
Not a vector type: " ++ (pprString ty)
[len, el_ty] = args
-- | Get the element type of a TFVec type
[len, el_ty] = args
-- | Get the element type of a TFVec type
@@
-107,7
+109,7
@@
tfvec_elem ty = el_ty
where
args = case Type.splitTyConApp_maybe ty of
Just (tycon, args) -> args
where
args = case Type.splitTyConApp_maybe ty of
Just (tycon, args) -> args
- Nothing -> error $ "
CoreTools.tfvec_len
Not a vector type: " ++ (pprString ty)
+ Nothing -> error $ "
\nCoreTools.tfvec_len:
Not a vector type: " ++ (pprString ty)
[len, el_ty] = args
-- Is this a wild binder?
[len, el_ty] = args
-- Is this a wild binder?
@@
-165,7
+167,7
@@
has_free_vars = not . VarSet.isEmptyVarSet . CoreFVs.exprFreeVars
-- simple Var CoreExprs, not complexer ones.
exprToVar :: CoreSyn.CoreExpr -> Var.Id
exprToVar (CoreSyn.Var id) = id
-- simple Var CoreExprs, not complexer ones.
exprToVar :: CoreSyn.CoreExpr -> Var.Id
exprToVar (CoreSyn.Var id) = id
-exprToVar expr = error $ "
CoreTools.exprToVar
Not a var: " ++ show expr
+exprToVar expr = error $ "
\nCoreTools.exprToVar:
Not a var: " ++ show expr
-- Removes all the type and dictionary arguments from the given argument list,
-- leaving only the normal value arguments. The type given is the type of the
-- Removes all the type and dictionary arguments from the given argument list,
-- leaving only the normal value arguments. The type given is the type of the