[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)
Showing
- ghc/compiler/basicTypes/BasicTypes.lhs 5 additions, 1 deletionghc/compiler/basicTypes/BasicTypes.lhs
- ghc/compiler/coreSyn/CoreUnfold.lhs 1 addition, 1 deletionghc/compiler/coreSyn/CoreUnfold.lhs
- ghc/compiler/coreSyn/PprCore.lhs 6 additions, 7 deletionsghc/compiler/coreSyn/PprCore.lhs
- ghc/compiler/coreSyn/Subst.lhs 23 additions, 25 deletionsghc/compiler/coreSyn/Subst.lhs
- ghc/compiler/main/MkIface.lhs 5 additions, 5 deletionsghc/compiler/main/MkIface.lhs
- ghc/compiler/simplCore/Simplify.lhs 13 additions, 10 deletionsghc/compiler/simplCore/Simplify.lhs
Please register or sign in to comment