summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBen Gamari <ben@smart-cactus.org>2021-01-12 20:55:56 -0500
committerMarge Bot <ben+marge-bot@smart-cactus.org>2021-02-17 11:22:23 -0500
commitfb94d102b932ee4e4193199c926369c9cd09b9dc (patch)
treeab2545fe65ab25297a74adc047f74ca8bb67e468
parent53677c96e385e9867377378d00dcb7623b0c3f13 (diff)
downloadhaskell-fb94d102b932ee4e4193199c926369c9cd09b9dc.tar.gz
CallArity: Small optimisations and strictness
-rw-r--r--compiler/GHC/Core/Opt/CallArity.hs6
1 files changed, 4 insertions, 2 deletions
diff --git a/compiler/GHC/Core/Opt/CallArity.hs b/compiler/GHC/Core/Opt/CallArity.hs
index 3af862c570..f54962b7cd 100644
--- a/compiler/GHC/Core/Opt/CallArity.hs
+++ b/compiler/GHC/Core/Opt/CallArity.hs
@@ -2,6 +2,8 @@
-- Copyright (c) 2014 Joachim Breitner
--
+{-# LANGUAGE BangPatterns #-}
+
module GHC.Core.Opt.CallArity
( callArityAnalProgram
, callArityRHS -- for testing
@@ -722,10 +724,10 @@ unitArityRes :: Var -> Arity -> CallArityRes
unitArityRes v arity = (emptyUnVarGraph, unitVarEnv v arity)
resDelList :: [Var] -> CallArityRes -> CallArityRes
-resDelList vs ae = foldr resDel ae vs
+resDelList vs ae = foldl' (flip resDel) ae vs
resDel :: Var -> CallArityRes -> CallArityRes
-resDel v (g, ae) = (g `delNode` v, ae `delVarEnv` v)
+resDel v (!g, !ae) = (g `delNode` v, ae `delVarEnv` v)
domRes :: CallArityRes -> UnVarSet
domRes (_, ae) = varEnvDom ae