summaryrefslogtreecommitdiff
path: root/compiler/simplCore/OccurAnal.hs
diff options
context:
space:
mode:
authorSimon Peyton Jones <simonpj@microsoft.com>2016-11-28 17:41:27 +0000
committerSimon Peyton Jones <simonpj@microsoft.com>2016-11-28 17:41:27 +0000
commit3aa936893cac8d7c3b242c882731e9a38a4ae425 (patch)
treeed01d54b6d4a834e9e693f56b1af8ce2645c95da /compiler/simplCore/OccurAnal.hs
parent27a6bdf029491a7bbd50377932ae86ede5b5020a (diff)
downloadhaskell-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.hs3
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.