X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=ghc%2Fcompiler%2Fmain%2FDriverState.hs;h=0500b66f36170deccda2c13b4c3c82f8d169f2be;hb=50027272414438955dbc41696541cbd25da55883;hp=2471eb08af3354e8402f4ec12da13fa7836ec9e9;hpb=4d9d0308c951ace938b5a209a8b046260739b3f1;p=ghc-hetmet.git diff --git a/ghc/compiler/main/DriverState.hs b/ghc/compiler/main/DriverState.hs index 2471eb0..0500b66 100644 --- a/ghc/compiler/main/DriverState.hs +++ b/ghc/compiler/main/DriverState.hs @@ -1,5 +1,5 @@ ----------------------------------------------------------------------------- --- $Id: DriverState.hs,v 1.31 2001/03/01 17:07:49 simonpj Exp $ +-- $Id: DriverState.hs,v 1.35 2001/03/23 16:36:20 simonmar Exp $ -- -- Settings for the driver -- @@ -281,20 +281,6 @@ buildCoreToDo = do else CoreDoNothing, if opt_level >= 2 then - CoreDoSimplify (isAmongSimpl [ - MaxSimplifierIterations max_iter - -- No -finline-phase: allow all Ids to be inlined now - ]) - else - CoreDoNothing, - -- Simplify before SpecConstr, because LiberateCase leaves - -- case binders the wrong way round. E.g. it leaves it like - -- case x of wild { ... f x .... } - -- rather than - -- case x of wild { ... f wild ... } - -- The latter is better because 'wild' has the unfolding for - -- x inside it. - if opt_level >= 2 then CoreDoSpecConstr else CoreDoNothing, @@ -336,6 +322,8 @@ addToDirList ref path = do paths <- readIORef ref writeIORef ref (paths ++ split split_marker path) +GLOBAL_VAR(v_HCHeader, "", String) + ----------------------------------------------------------------------------- -- Packages @@ -401,19 +389,19 @@ getPackageExtraLdOpts = do ps <- getPackageInfo return (concatMap extra_ld_opts ps) -getPackageInfo :: IO [Package] +getPackageInfo :: IO [PackageConfig] getPackageInfo = do ps <- readIORef v_Packages getPackageDetails ps -getPackageDetails :: [String] -> IO [Package] +getPackageDetails :: [String] -> IO [PackageConfig] getPackageDetails ps = do pkg_details <- readIORef v_Package_details return [ pkg | p <- ps, Just pkg <- [ lookupPkg p pkg_details ] ] -GLOBAL_VAR(v_Package_details, (error "package_details"), [Package]) +GLOBAL_VAR(v_Package_details, (error "package_details"), [PackageConfig]) -lookupPkg :: String -> [Package] -> Maybe Package +lookupPkg :: String -> [PackageConfig] -> Maybe PackageConfig lookupPkg nm ps = case [p | p <- ps, name p == nm] of [] -> Nothing @@ -521,14 +509,45 @@ way_details = (WayUnreg, Way "u" "Unregisterised" unregFlags ), + -- optl's below to tell linker where to find the PVM library -- HWL (WayPar, Way "mp" "Parallel" [ "-fparallel" , "-D__PARALLEL_HASKELL__" , "-optc-DPAR" , "-package concurrent" + , "-optc-w" + , "-optl-L${PVM_ROOT}/lib/${PVM_ARCH}" + , "-optl-lpvm3" + , "-optl-lgpvm3" + , "-fvia-C" ]), + + -- at the moment we only change the RTS and could share compiler and libs! + (WayPar, Way "mt" "Parallel ticky profiling" + [ "-fparallel" + , "-D__PARALLEL_HASKELL__" + , "-optc-DPAR" + , "-optc-DPAR_TICKY" + , "-package concurrent" + , "-optc-w" + , "-optl-L${PVM_ROOT}/lib/${PVM_ARCH}" + , "-optl-lpvm3" + , "-optl-lgpvm3" + , "-fvia-C" ]), + + (WayPar, Way "md" "Distributed" + [ "-fparallel" + , "-D__PARALLEL_HASKELL__" + , "-D__DISTRIBUTED_HASKELL__" + , "-optc-DPAR" + , "-optc-DDIST" + , "-package concurrent" + , "-optc-w" + , "-optl-L${PVM_ROOT}/lib/${PVM_ARCH}" + , "-optl-lpvm3" + , "-optl-lgpvm3" , "-fvia-C" ]), - (WayGran, Way "mg" "Gransim" + (WayGran, Way "mg" "GranSim" [ "-fgransim" , "-D__GRANSIM__" , "-optc-DGRAN"