Simplify OccurAnal.tagRecBinders
authorJoachim Breitner <mail@joachim-breitner.de>
Tue, 1 Aug 2017 02:56:51 +0000 (22:56 -0400)
committerJoachim Breitner <mail@joachim-breitner.de>
Tue, 1 Aug 2017 13:09:33 +0000 (09:09 -0400)
No need to mark the binders with markNonTailCalled, as they already have been
marked as such in rhs_udss' via adjust.

Differential Revision: https://phabricator.haskell.org/D3810

compiler/simplCore/OccurAnal.hs

index 5dd30aa..dbe1c48 100644 (file)
@@ -2657,12 +2657,9 @@ tagRecBinders lvl body_uds triples
      -- 3. Compute final usage details from adjusted RHS details
      adj_uds   = body_uds +++ combineUsageDetailsList rhs_udss'
 
-     -- 4. Tag each binder with its adjusted details modulo the
-     --    join-point-hood decision
-     occs      = map (lookupDetails adj_uds) bndrs
-     occs'     | will_be_joins = occs
-               | otherwise     = map markNonTailCalled occs
-     bndrs'    = zipWith setBinderOcc occs' bndrs
+     -- 4. Tag each binder with its adjusted details
+     bndrs'    = [ setBinderOcc (lookupDetails adj_uds bndr) bndr
+                 | bndr <- bndrs ]
 
      -- 5. Drop the binders from the adjusted details and return
      usage'    = adj_uds `delDetailsList` bndrs