summaryrefslogtreecommitdiff
path: root/compiler/main
diff options
context:
space:
mode:
authorSylvain Henry <sylvain@haskus.fr>2020-03-05 20:44:57 +0100
committerMarge Bot <ben+marge-bot@smart-cactus.org>2020-03-11 20:33:37 -0400
commita6989971379c26d8c288551d536149675e009e34 (patch)
tree3cf1f5db8494cb6408461679dc9bcd9f4d5a938d /compiler/main
parentbc41e47123b205a45385a3aa69de97ce22686423 (diff)
downloadhaskell-a6989971379c26d8c288551d536149675e009e34.tar.gz
Use a Set to represent Ways
Should make `member` queries faster and avoid messing up with missing `nubSort`. Metric Increase: hie002
Diffstat (limited to 'compiler/main')
-rw-r--r--compiler/main/SysTools.hs4
1 files changed, 3 insertions, 1 deletions
diff --git a/compiler/main/SysTools.hs b/compiler/main/SysTools.hs
index bbe889ba99..b2b13d424b 100644
--- a/compiler/main/SysTools.hs
+++ b/compiler/main/SysTools.hs
@@ -48,6 +48,7 @@ import Outputable
import ErrUtils
import GHC.Platform
import GHC.Driver.Session
+import GHC.Driver.Ways
import Control.Monad.Trans.Except (runExceptT)
import System.FilePath
@@ -58,6 +59,7 @@ import SysTools.Info
import SysTools.Tasks
import SysTools.BaseDir
import SysTools.Settings
+import qualified Data.Set as Set
{-
Note [How GHC finds toolchain utilities]
@@ -254,7 +256,7 @@ linkDynLib dflags0 o_files dep_packages
| ( osElfTarget (platformOS (targetPlatform dflags)) ||
osMachOTarget (platformOS (targetPlatform dflags)) ) &&
dynLibLoader dflags == SystemDependent &&
- WayDyn `elem` ways dflags
+ WayDyn `Set.member` ways dflags
= ["-L" ++ l, "-Xlinker", "-rpath", "-Xlinker", l]
-- See Note [-Xlinker -rpath vs -Wl,-rpath]
| otherwise = ["-L" ++ l]