diff options
author | Simon Peyton Jones <simonpj@microsoft.com> | 2016-11-28 17:41:27 +0000 |
---|---|---|
committer | Simon Peyton Jones <simonpj@microsoft.com> | 2016-11-28 17:41:27 +0000 |
commit | 3aa936893cac8d7c3b242c882731e9a38a4ae425 (patch) | |
tree | ed01d54b6d4a834e9e693f56b1af8ce2645c95da /compiler/simplCore/OccurAnal.hs | |
parent | 27a6bdf029491a7bbd50377932ae86ede5b5020a (diff) | |
download | haskell-3aa936893cac8d7c3b242c882731e9a38a4ae425.tar.gz |
Comments only (related to #12789)
It took me some time to find the right Note for the
fix to #12789. This comment patch tries to add pointers
from relevant places.
Diffstat (limited to 'compiler/simplCore/OccurAnal.hs')
-rw-r--r-- | compiler/simplCore/OccurAnal.hs | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/compiler/simplCore/OccurAnal.hs b/compiler/simplCore/OccurAnal.hs index 7e62eeede7..6950e56cdb 100644 --- a/compiler/simplCore/OccurAnal.hs +++ b/compiler/simplCore/OccurAnal.hs @@ -276,6 +276,9 @@ Loop breaking is surprisingly subtle. First read the section 4 of We avoid infinite inlinings by choosing loop breakers, and ensuring that a loop breaker cuts each loop. +See also Note [Inlining and hs-boot files] in ToIface, which deals +with a closely related source of infinite loops. + Fundamentally, we do SCC analysis on a graph. For each recursive group we choose a loop breaker, delete all edges to that node, re-analyse the SCC, and iterate. |