diff options
author | Max Bolingbroke <batterseapower@hotmail.com> | 2012-03-30 17:21:45 +0100 |
---|---|---|
committer | Max Bolingbroke <batterseapower@hotmail.com> | 2012-03-30 18:08:07 +0100 |
commit | 83d9b3805d271dc361d48187957498b3138ae62a (patch) | |
tree | dbdfaffab0a266cf177618b61421738b2aa84cdd /ghc | |
parent | ac2fbb4f6ce7bf9f0742207e1b974bbd556af85a (diff) | |
download | haskell-83d9b3805d271dc361d48187957498b3138ae62a.tar.gz |
Attempt to detect loops through imported function RULEs
This is motivated by the fact that before this change marking e.g.
GHC.List.filter as INLINABLE caused the compiler to diverge when
you tried to make use of the function.
The response is to say that a RULE on an imported function introduces
a dependency edge between the FVs of its LHS and RHS for the purposes
of computing loop breakers. This will not perfectly prevent all those
potential inlinings that could cause the compiler to non-terminate,
but it works well enough for the particular case we are interested in.
Diffstat (limited to 'ghc')
0 files changed, 0 insertions, 0 deletions