diff options
author | Simon Marlow <marlowsd@gmail.com> | 2009-03-30 08:29:57 +0000 |
---|---|---|
committer | Simon Marlow <marlowsd@gmail.com> | 2009-03-30 08:29:57 +0000 |
commit | 31fb95918211a9ed8fde955505bda6e40019bbd0 (patch) | |
tree | bc1e47f3f8b19d2545318981ea41e83f4f14ec0f /compiler/cmm | |
parent | 59fa6266f00b6edcfc20c491c8de9a1b215dfa22 (diff) | |
download | haskell-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.hs | 9 |
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? |