[project @ 2000-04-21 14:40:48 by simonpj]
authorsimonpj <unknown>
Fri, 21 Apr 2000 14:40:49 +0000 (14:40 +0000)
committersimonpj <unknown>
Fri, 21 Apr 2000 14:40:49 +0000 (14:40 +0000)
commit0666c3bb2433ade3ac9582f58126abb4ebcf548b
tree5f5f61edb62620a89fac6258fc69785de875f5a0
parent7166525ede2720138bced419e1070ad9245a90f5
[project @ 2000-04-21 14:40:48 by simonpj]
Remove a way to make the simplifier go into an
infinite loop.   This has been there for some weeks;
and George's UniForm tickled it.  I'm amazed nothing
else has done so.  I'll add a test.

The bad case happened when you go

let xs = 1:xs
in
foldr k z xs

Then we kept firing the foldr/cons rule.

Solution: we don't attach an unfolding *at all* to
loop breakers (Simplify.completeBinding)
ghc/compiler/basicTypes/BasicTypes.lhs
ghc/compiler/coreSyn/CoreUnfold.lhs
ghc/compiler/coreSyn/PprCore.lhs
ghc/compiler/coreSyn/Subst.lhs
ghc/compiler/main/MkIface.lhs
ghc/compiler/simplCore/Simplify.lhs