summaryrefslogtreecommitdiff
path: root/compiler/cmm
diff options
context:
space:
mode:
authorSimon Marlow <marlowsd@gmail.com>2009-03-30 08:29:57 +0000
committerSimon Marlow <marlowsd@gmail.com>2009-03-30 08:29:57 +0000
commit31fb95918211a9ed8fde955505bda6e40019bbd0 (patch)
treebc1e47f3f8b19d2545318981ea41e83f4f14ec0f /compiler/cmm
parent59fa6266f00b6edcfc20c491c8de9a1b215dfa22 (diff)
downloadhaskell-31fb95918211a9ed8fde955505bda6e40019bbd0.tar.gz
use a UniqSet for is MathFun, this list is getting quite large
Diffstat (limited to 'compiler/cmm')
-rw-r--r--compiler/cmm/CLabel.hs9
1 files changed, 5 insertions, 4 deletions
diff --git a/compiler/cmm/CLabel.hs b/compiler/cmm/CLabel.hs
index f95a0fda04..ecff3da3e9 100644
--- a/compiler/cmm/CLabel.hs
+++ b/compiler/cmm/CLabel.hs
@@ -133,6 +133,7 @@ import CostCentre
import Outputable
import FastString
import DynFlags
+import UniqSet
-- -----------------------------------------------------------------------------
-- The CLabel type
@@ -522,9 +523,10 @@ maybeAsmTemp _ = Nothing
-- they are builtin to the C compiler. For these labels we avoid
-- generating our own C prototypes.
isMathFun :: CLabel -> Bool
-isMathFun (ForeignLabel fs _ _ _) = fs `elem` math_funs
- where
- math_funs = [
+isMathFun (ForeignLabel fs _ _ _) = fs `elementOfUniqSet` math_funs
+isMathFun _ = False
+
+math_funs = mkUniqSet [
-- _ISOC99_SOURCE
(fsLit "acos"), (fsLit "acosf"), (fsLit "acosh"),
(fsLit "acoshf"), (fsLit "acoshl"), (fsLit "acosl"),
@@ -603,7 +605,6 @@ isMathFun (ForeignLabel fs _ _ _) = fs `elem` math_funs
(fsLit "y1"), (fsLit "y1f"), (fsLit "y1l"),
(fsLit "yn"), (fsLit "ynf"), (fsLit "ynl")
]
-isMathFun _ = False
-- -----------------------------------------------------------------------------
-- Is a CLabel visible outside this object file or not?