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:
3fc90df
)
Add TODO.
author
Matthijs Kooijman
<matthijs@stdin.nl>
Tue, 1 Dec 2009 19:28:49 +0000
(20:28 +0100)
committer
Matthijs Kooijman
<matthijs@stdin.nl>
Tue, 1 Dec 2009 19:28:49 +0000
(20:28 +0100)
cλash/CLasH/Normalize.hs
patch
|
blob
|
history
diff --git
a/cλash/CLasH/Normalize.hs
b/cλash/CLasH/Normalize.hs
index 4743824bf2ba85313b3bb4bf1241f00e0f47e2d2..a06094b9927b7b855ad1e703533f5166273227d2 100644
(file)
--- a/
cλash/CLasH/Normalize.hs
+++ b/
cλash/CLasH/Normalize.hs
@@
-616,6
+616,11
@@
argprop expr@(App _ _) | is_var fexpr = do
let free_vars = VarSet.varSetElems $ CoreFVs.exprSomeFreeVars interesting arg
-- Mark the current expression as changed
setChanged
let free_vars = VarSet.varSetElems $ CoreFVs.exprSomeFreeVars interesting arg
-- Mark the current expression as changed
setChanged
+ -- TODO: Clone the free_vars (and update references in arg), since
+ -- this might cause conflicts if two arguments that are propagated
+ -- share a free variable. Also, we are now introducing new variables
+ -- into a function that are not fresh, which violates the binder
+ -- uniqueness invariant.
return (map Var free_vars, free_vars, arg)
else do
-- Representable types will not be propagated, and arguments with free
return (map Var free_vars, free_vars, arg)
else do
-- Representable types will not be propagated, and arguments with free