projects
/
matthijs
/
master-project
/
cλash.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
0f8a8b4
)
Update comment for return value simplification.
author
Matthijs Kooijman
<matthijs@stdin.nl>
Tue, 6 Apr 2010 14:45:17 +0000
(16:45 +0200)
committer
Matthijs Kooijman
<matthijs@stdin.nl>
Tue, 6 Apr 2010 14:45:17 +0000
(16:45 +0200)
cλash/CLasH/Normalize.hs
patch
|
blob
|
history
diff --git
a/cλash/CLasH/Normalize.hs
b/cλash/CLasH/Normalize.hs
index 75ab7380f0bca63f40bac1c4f423ef356e8c2c19..36990dffc5e3cb733c12604765739168001ae934 100644
(file)
--- a/
cλash/CLasH/Normalize.hs
+++ b/
cλash/CLasH/Normalize.hs
@@
-121,11
+121,13
@@
castsimpl c expr = return expr
castsimpltop = everywhere ("castsimpl", castsimpl)
--------------------------------
castsimpltop = everywhere ("castsimpl", castsimpl)
--------------------------------
--- Ensure that a function that just returns another function (or rather,
--- another top-level binder) is still properly normalized. This is a temporary
--- solution, we should probably integrate this pass with lambdasimpl and
--- letsimpl instead.
+-- Return value simplification
--------------------------------
--------------------------------
+-- Ensure the return value of a function follows proper normal form. eta
+-- expansion ensures the body starts with lambda abstractions, this
+-- transformation ensures that the lambda abstractions always contain a
+-- recursive let and that, when the return value is representable, the
+-- let contains a local variable reference in its body.
retvalsimpl c expr@(Let (Rec binds) body) | all (== LambdaBody) c = do
-- Don't extract values that are already a local variable, to prevent
-- loops with ourselves.
retvalsimpl c expr@(Let (Rec binds) body) | all (== LambdaBody) c = do
-- Don't extract values that are already a local variable, to prevent
-- loops with ourselves.